home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 2 of 2).iso / cheats / eq_new / def / worldofx.bak < prev    next >
Text File  |  1995-03-11  |  11KB  |  471 lines

  1. // This file is (C) 1994 - GLENN HANCOCK
  2.  
  3. DEFTITLE("Might & Magic IV & V: World of Xeen");
  4. DIR("C:\XEEN");
  5. PROGRAM("XEEN.exe");
  6. REGISTEREDONLY;
  7. UNIQUE("XEEN.CFG;XEEN.DAT;INTRO.CC;DARK.CC;");
  8. DISKSOURCE;
  9. GLENN;
  10. SOURCEVERSION('100');
  11. BACKGROUND("CLOUDS.BGP");
  12. TEXTCOLOR(WHITE);
  13.  
  14. STRING FN,CNAME;
  15. INT CLASS,Count,CharPos,NumOfChars,D,N,R,COff,SKILL,AWARD;
  16.  
  17. (*------------------------------------------------------------*)
  18.  
  19. PROC FSEL;
  20.   D := 0;
  21.   N := GetFileList($(100),"DARK*.SAV");
  22.   R := 100;
  23.  
  24.   IF (N>0)
  25.     FreeList('Please Choose A SaveGame to Work On:');
  26.       VAR(R);
  27.       while D<N
  28.         D:=D+1;
  29.         Assign(99+D,$(99+D));
  30.       endwhile;
  31.     EndFreeList;
  32.   ENDIF;
  33.  
  34.   IF (N=0)
  35.     MESSAGE('There are no SaveGames in your XEEN',
  36.             'directory.  Please play World of XEEN'
  37.             'and save your game.');
  38.     Quit;
  39.   ENDIF;
  40.  
  41.   FN := $(R);
  42.   Open(FN);
  43.  
  44. ENDPROC; // FSEL
  45.  
  46. (*------------------------------------------------------------*)
  47.  
  48. PROC GetNames;
  49.  
  50.   Count := 0;
  51.   NumOfChars := ReadNum(14205,T_BYTE);
  52.  
  53.     WHILE Count<NumOfChars
  54.       CharPos := ReadNum((14207+Count),T_BYTE);
  55.       $(150+Count) := (ReadStr(3585+(CharPos*354),T_C));
  56.       Count := (Count+1);
  57.     ENDWHILE;
  58.  
  59. ENDPROC;  //  GetNames
  60.  
  61. (*------------------------------------------------------------*)
  62.  
  63. PROC PAGE2;
  64.  
  65.   N := 0;
  66.  
  67.   COff := (COff-150);
  68.   N := READNUM((14207+COff),T_BYTE);
  69.   COff := (3585+(N*354));
  70.  
  71.   CLASS := Readnum((COff+19),T_BYTE);
  72.  
  73.   GOTOPAGE(2);
  74.  
  75. ENDPROC;  //  Page 2
  76.  
  77. (*------------------------------------------------------------*)
  78.  
  79. PROC ReadSkills;
  80.  
  81.   INT Flag,Count,SOff;
  82.  
  83.   Count := 0;
  84.   SOff := 39;
  85.  
  86.  WHILE Count <= 18
  87.    Flag := Readnum(COff+SOff,T_BYTE);
  88.     If Flag = 0 Then $(200+Count) := "No";
  89.     If Flag = 1 Then $(200+Count) := "Yes";
  90.    SOff := (SOff+1);
  91.    Count := (Count+1);
  92.  ENDWHILE;
  93.  
  94. ENDPROC;  //  ReadSkills
  95.  
  96. (*------------------------------------------------------------*)
  97.  
  98. PROC EditSkill;
  99.  
  100.  FREEFIELD("Do You Want This Skill?:");
  101.    Name(FN,(COff+39+SKILL),T_BYTE);
  102.    ASSIGN(0,"No","Yes");
  103.    Range(0,1);
  104.  ENDFREEFIELD;
  105.  
  106.  GOTOPAGE(4);
  107.  
  108. ENDPROC;  //  EditSkill
  109.  
  110. (*------------------------------------------------------------*)
  111.  
  112. PROC ListSkills;
  113.  
  114.   SKILL := 0;
  115.  
  116.    LIST(' ');
  117.     VAR(Skill);
  118.      Assign(0,"Thievery         "+$(200));
  119.      Assign(1,"Armsmaster       "+$(201));
  120.      Assign(2,"Astrologer       "+$(202));
  121.      Assign(3,"Body Builder     "+$(203));
  122.      Assign(4,"Cartographer     "+$(204));
  123.      Assign(5,"Crusader         "+$(205));
  124.      Assign(6,"Direction Sense  "+$(206));
  125.      Assign(7,"Linguist         "+$(207));
  126.      Assign(8,"Merchant         "+$(208));
  127.      Assign(9,"Mountaineer      "+$(209));
  128.      Assign(10,"Navigator        "+$(210));
  129.      Assign(11,"Pathfinder       "+$(211));
  130.      Assign(12,"Prayer Master    "+$(212));
  131.      Assign(13,"Prestidigitator  "+$(213));
  132.      Assign(14,"Swimmer          "+$(214));
  133.      Assign(15,"Tracker          "+$(215));
  134.      Assign(16,"Spot Secret Door "+$(216));
  135.      Assign(17,"Danger Sense     "+$(217));
  136.    ENDLIST;
  137.  
  138.   BUTTON("Edit Skill"," ",EditSkill);
  139.  
  140. ENDPROC;  //  ListSkills
  141.  
  142. (*------------------------------------------------------------*)
  143.  
  144. PROC ReadAwards;
  145.  
  146.   INT Flag,Count,AOff;
  147.  
  148.   Count := 0;
  149.   AOff := 57;
  150.  
  151.  WHILE Count <= 64
  152.    Flag := Readnum(COff+AOff,T_BYTE);
  153.     If Flag = 0 Then $(300+Count) := "No";
  154.     If Flag = 1 Then $(300+Count) := "Yes";
  155.    AOff := (AOff+1);
  156.    Count := (Count+1);
  157.  ENDWHILE;
  158.  
  159. ENDPROC;  //  ReadSkills
  160.  
  161. (*------------------------------------------------------------*)
  162.  
  163. PROC EditAward;
  164.  
  165.  FREEFIELD("Do You Want This Award?:");
  166.    Name(FN,(COff+57+AWARD),T_BYTE);
  167.    ASSIGN(0,"No","Yes");
  168.    Range(0,1);
  169.  ENDFREEFIELD;
  170.  
  171.  GOTOPAGE(4);
  172.  
  173. ENDPROC;  //  EditAward
  174.  
  175. (*------------------------------------------------------------*)
  176.  
  177. PROC ListAwards;
  178.  
  179.   AWARD := 0;
  180.  
  181.    LIST(' ');
  182.     VAR(AWARD);
  183.      Assign(0,"Vertigo Guild    "+$(300));
  184.      Assign(1,"Nightshadow Guild"+$(301));
  185.      Assign(2,"River City Guild "+$(302));
  186.      Assign(3,"Asp Guild Member "+$(303));
  187.      Assign(4,"Winterkill Guild "+$(304));
  188.      Assign(5,"Shangri-la Guild "+$(305));
  189.      Assign(6,"Outstanding Cit. "+$(306));
  190.      Assign(7,"R.D. Badge of C. "+$(307));
  191.      Assign(8,"Convicted Thief  "+$(308));
  192.      Assign(9,"War Zone Wins    "+$(309));
  193.      Assign(10,"Super Explorer   "+$(310));
  194.      Assign(11,"Master of Golems "+$(311));
  195.      Assign(12,"Taxman Emeritus  "+$(312));
  196.      Assign(13,"Rescued Crodo    "+$(313));
  197.      Assign(14,"Found Shangri-la "+$(314));
  198.      Assign(15,"Prince of Thieves"+$(315));
  199.      Assign(16,"Ghost Slayer     "+$(316));
  200.      Assign(17,"Legendary        "+$(317));
  201.      Assign(18,"Rescued Celia    "+$(318));
  202.      Assign(19,"Helped Orathin   "+$(319));
  203.      Assign(20,"Restored Falista "+$(320));
  204.      Assign(21,"Turned Seasons   "+$(321));
  205.      Assign(22,"Helped Carlawna  "+$(322));
  206.      Assign(23,"Helped Falagar   "+$(323));
  207.      Assign(24,"Restored Mirabeth"+$(324));
  208.      Assign(25,"Helped Danulf    "+$(325));
  209.      Assign(26,"Saved Elves      "+$(326));
  210.      Assign(27,"Civilized One    "+$(327));
  211.      Assign(28,"Help Capt. Nystor"+$(328));
  212.      Assign(29,"Liberated Pagoda "+$(329));
  213.      Assign(30,"Fisher''s Friend  "+$(330));
  214.      Assign(31,"Helped Arie      "+$(331));
  215.      Assign(32,"Freed Ligona     "+$(332));
  216.      Assign(33,"Helped Glom      "+$(333));
  217.      Assign(34,"Helped Halon     "+$(334));
  218.      Assign(35,"Princess'' Friend "+$(335));
  219.      Assign(36,"Appeased Barok   "+$(336));
  220.      Assign(37,"Loremaster Worms "+$(337));
  221.      Assign(38,"Loremaster Liz.  "+$(338));
  222.      Assign(39,"Loremaster Serp. "+$(339));
  223.      Assign(40,"Loremaster Drake "+$(340));
  224.      Assign(41,"Loremaster Drag. "+$(341));
  225.      Assign(42,"DEFEATED XEEN    "+$(342));
  226.      Assign(43,"Master of Words  "+$(343));
  227.      Assign(44,"Drawcab Brother  "+$(344));
  228.      Assign(45,"Chosen One       "+$(345));
  229.      Assign(46,"Disciple of Bark "+$(346));
  230.      Assign(47,"Cartog. Challange"+$(347));
  231.      Assign(48,"Merch. Challange "+$(348));
  232.      Assign(49,"Superior Intel.  "+$(349));
  233.      Assign(50,"Helped Dreyfus   "+$(350));
  234.      Assign(51,"Returned Stats.  "+$(351));
  235.      Assign(52,"Drawcab Extraord."+$(352));
  236.      Assign(53,"Enchanted Bridle "+$(353));
  237.      Assign(54,"Helped Kramer    "+$(354));
  238.      Assign(55,"Helped Vesper    "+$(355));
  239.      Assign(56,"Fed Nibbler      "+$(356));
  240.      Assign(57,"Rescued Sprite   "+$(357));
  241.      Assign(58,"Taste Tester Roy."+$(358));
  242.      Assign(59,"Helped Ector     "+$(359));
  243.      Assign(60,"Fountain of Youth"+$(360));
  244.      Assign(61,"Awakened Fire    "+$(361));
  245.      Assign(62,"Awakened Air     "+$(362));
  246.      Assign(63,"Awakened Earth   "+$(363));
  247.      XYOVERRIDE(350,55);
  248.    ENDLIST;
  249.  
  250.   BUTTON(350,180,"Edit Award"," ",EditAward);
  251.  
  252. ENDPROC;  //  ListAwards
  253.  
  254. (*------------------------------------------------------------*)
  255.  
  256. PROC SpellButton;
  257.  
  258.  INT SOFF,YN;
  259.  SOFF := 121;
  260.  
  261.  IF ((CLASS = 1) OR (CLASS = 2) OR (CLASS = 3) OR (CLASS = 4) OR (CLASS = 8) OR (CLASS = 9))
  262.  
  263.    YN :=  MESSAGEYN('This Button will permanently give this'
  264.            'Character every spell he or she can have.'
  265.            'Once you press this button you cannot go'
  266.            'back to what spells you had. Press YES to'
  267.            'continue and NO to return to editing'
  268.            'without changing your current spells.');
  269.  
  270.    IF YN = 1
  271.  
  272.     WHILE SOff <= 160
  273.       WRITENUM(COff+SOff,T_BYTE,1);
  274.       SOff := (SOff+1);
  275.     ENDWHILE;
  276.  
  277.     MESSAGE('This character now has every spell they can');
  278.  
  279.    ENDIF;
  280.  
  281.    IF YN = 0 THEN MESSAGE('Your character has not changed');
  282.  
  283.  ENDIF;
  284.  
  285.  IF ((CLASS = 0) OR (CLASS = 5) OR (CLASS = 6) OR (CLASS = 7))
  286.   MESSAGE('You Wish.','Sorry this character can''t cast magic.');
  287.   GOTOPAGE(4);
  288.  ENDIF;
  289.  
  290. ENDPROC;  //  SpellButton
  291.  
  292.  
  293. (*------------------------------------------------------------*)
  294.  
  295.  
  296. FSEL;
  297. GetNames;
  298.  
  299. PAGE(1);
  300.  
  301. SETTITLE("World of Xeen");
  302. FIELDSTART(100);
  303.  
  304.   Count := 0;
  305.   COff := 150;
  306.  
  307.   List('Choose a Character to Edit:');
  308.     VAR(COff);
  309.     ADDLIST($(150),NumOfChars);
  310.   EndList;
  311.  
  312.   BUTTON("Edit Character"," ",PAGE2);
  313.  
  314.   FIELDSTART(140);
  315.   FIELDSPACE(45);
  316.  
  317.   FIELD("Party Gold");
  318.    NAME(FN,14843,T_WORD);
  319.    INC(100);
  320.   ENDFIELD;
  321.  
  322.   FIELD("Party Gems");
  323.    NAME(FN,14847,T_WORD);
  324.    INC(100);
  325.   ENDFIELD;
  326.  
  327.   FIELD("Party Food");
  328.    NAME(FN,14823,T_WORD);
  329.    INC(100);
  330.   ENDFIELD;
  331.  
  332.   NEXTPAGE(1);
  333.  
  334. ENDPAGE;  //  1
  335.  
  336.  
  337. Page(2);
  338.  
  339.  SETTITLE( 'Editing Character: '+CNAME+'');
  340.  FIELDSPACE(50);
  341.  
  342.   Field("Might");
  343.    Name(FN,(COff+20),T_BYTE);
  344.    RANGE(0,200);
  345.   EndField;
  346.  
  347.   Field("Intelligence");
  348.    Name(FN,(COff+22),T_BYTE);
  349.    RANGE(0,200);
  350.   EndField;
  351.  
  352.   Field("Personality");
  353.    Name(FN,(COff+24),T_BYTE);
  354.    RANGE(0,200);
  355.   EndField;
  356.  
  357.   Field("Endurance");
  358.    Name(FN,(COff+26),T_BYTE);
  359.    RANGE(0,200);
  360.   EndField;
  361.  
  362.   Field("Speed");
  363.    Name(FN,(COff+28),T_BYTE);
  364.    RANGE(0,200);
  365.   EndField;
  366.  
  367.   Field("Accuracy");
  368.    Name(FN,(COff+30),T_BYTE);
  369.    RANGE(0,200);
  370.   EndField;
  371.  
  372.   Field("Luck");
  373.    Name(FN,(COff+32),T_BYTE);
  374.    RANGE(0,200);
  375.   EndField;
  376.  
  377. ENDPAGE;    // 2
  378.  
  379. PAGE(3);
  380.  
  381.  SETTITLE( 'Editing Character: '+CNAME+'');
  382.  FIELDSTART(100);
  383.  
  384.   Field("Hit Points");
  385.    Name(FN,(COff+342),T_WORD);
  386.    RANGE(0,5000);
  387.   EndField;
  388.  
  389.   IF ((CLASS = 1) OR (CLASS = 2) OR (CLASS = 3) OR (CLASS = 4) OR (CLASS = 8) OR (CLASS = 9))
  390.    Field("Spell Points");
  391.     Name(FN,(COff+344),T_WORD);
  392.     RANGE(0,5000);
  393.    EndField;
  394.   ENDIF;
  395.  
  396.   IF ((CLASS = 0) OR (CLASS = 5) OR (CLASS = 6) OR (CLASS = 7))
  397.    Field("Spell Points");
  398.     ASSIGN(0,"N/A");
  399.     RANGE(0,0);
  400.    EndField;
  401.   ENDIF;
  402.  
  403.  
  404.   Field("Experience Points");
  405.    Name(FN,(COff+348),T_LONG);
  406.    RANGE(0,20000000);
  407.    INC(100);
  408.   EndField;
  409.  
  410. ENDPAGE;  //  3
  411.  
  412.  
  413. PAGE(4);
  414.  
  415.  SETTITLE( 'Editing Character: '+CNAME+'');
  416.  
  417.  
  418.    ReadSkills;
  419.    ReadAwards;
  420.    ListSkills;
  421.    ListAwards;
  422.  
  423.   BUTTON(195,230,"All Spells"," ",SpellButton);
  424.  
  425. ENDPAGE;  //  4
  426.  
  427.  
  428.  
  429. ABOUT
  430. ^4^*^UWorld of Xeen^U
  431.  
  432. This is both Might & Magic four and five put
  433. together on your hard drive. To do this,
  434. simply install Darkside, and select World of
  435. Xeen from the install menu. Be prepared for
  436. a great deal of quests to perform. Many are
  437. unique to World of Xeen, and only appear when
  438. the two games are merged together.
  439.  
  440. Features of this DEFinition include:
  441.  
  442. - Max out all your stats.
  443. - Give yourself every skill without having
  444.   to find out how and where to get them.
  445. - Finnish neccessary tasks and win the awards
  446.   without actually going anywhere, (except
  447.   the Equalizer of course.)
  448. - Give yourself every single spell your
  449.   character is capable of having.
  450. - Edit the amount of money and gems your
  451.   party is carrying.
  452.  
  453. ^4Copyright (C)1994
  454. ^4New World Computing Inc.
  455. ^U
  456.  
  457.              ^P"YSSgh.PCC"
  458. ENDABOUT;
  459.  
  460.  
  461. DIALOG("001");
  462. ^E^UAttributes with Two Fields^U
  463.  
  464. All attributes that have two fields show
  465. current and maximum values. Current on the
  466. left, and out of on the right.
  467. eg. 99/100 would be 99 points out a maximum
  468. of 100 points.
  469. ENDDIALOG;
  470.  
  471.